home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / plain C OS8 / Everything / ModalBars.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-10-29  |  8.3 KB  |  256 lines  |  [TEXT/CWIE]

  1. /* ModalBars.c -- Modal dialog */
  2.  
  3. #include <Types.h>
  4. #include <Quickdraw.h>
  5. #include <Controls.h>
  6. #include <Dialogs.h>
  7. #include <Events.h>
  8. #include <Lists.h>
  9. #include <Menus.h>
  10. #include <TextEdit.h>
  11. #include <Appearance.h>
  12. #include <stdlib.h>
  13.  
  14. #include "ResourceDefs.h"
  15. #include "Miscellany.h"
  16. #include "ControlUtils.h"
  17.  
  18. #include "Dispatcher.h"
  19. #include "ModalBars.h"
  20.  
  21. #define kOKButton        1
  22. #define kBarsPanel        2
  23. #define kScrollBarsLayer        3
  24. #define kStandardScroll        4
  25. #define kGraphicScroll        5
  26. #define kSliderScroll        6
  27. #define kTickMarksScroll        7
  28. #define kNonDirectionalScroll        8
  29. #define kLittleArrowsScroll        9
  30. #define kSpinnerScroll        10
  31. #define kVolumeControlScroll        11
  32. #define kJimSSliderScroll        12
  33. #define kProgressBarsLayer        13
  34. #define kStandard2Bar            14
  35. #define kIndeterminateBar            15
  36. #define kChasingArrowsBar            16
  37. #define kRectangleBar            17
  38. #define kRoundRectBar            18
  39. #define kBarberPoleBar            19
  40. #define kRoundBarberBar            20
  41.  
  42.  
  43. /*----------*/
  44. Boolean        GetModalBars (
  45.     DModalBarsData*        ioData)
  46. {
  47.     Boolean            result = false;
  48.     ModalBars*        dialog = NewModalBars ();
  49.  
  50.     result = AMDialog_RunModal ((AMDialog*)dialog, DLOG_ModalBars, (AMSignaler*)ioData);
  51.  
  52.     DeleteModalBars (dialog);
  53.  
  54.     return result;
  55. }
  56.  
  57. //----------
  58. ModalBars*        NewModalBars ()
  59. {
  60.     ModalBars*        dialog;
  61.  
  62.     dialog = (ModalBars*)malloc (sizeof (ModalBars));
  63.     ModalBars_Init (dialog);
  64.     SetClassID (dialog, classModalBars);
  65.  
  66.     return dialog;
  67. }
  68.  
  69. //----------
  70. void    DeleteModalBars (
  71.     ModalBars*        dialog)
  72. {
  73.     ModalBars_Free (dialog);
  74.     free (dialog);
  75. }
  76.  
  77. //----------
  78. void    ModalBars_Init (
  79.     ModalBars*        self)
  80. {
  81.     AMDialog_Init ((AMDialog*)self);
  82. }
  83.  
  84. //----------
  85. void    ModalBars_Free (
  86.     ModalBars*        self)
  87. {
  88.     AMDialog_Free ((AMDialog*)self);
  89. }
  90.  
  91. //----------
  92. void    ModalBars_FinishMake (
  93.     ModalBars*        self)
  94. {
  95.     self->mOKHandle = AMDialog_GetControlItem ((AMDialog*)self, kOKButton);
  96.     SetDefaultState (self->mOKHandle, true);
  97.     SetDialogDefaultItem (((AMDialog*)self)->mDialog, kOKButton);
  98.     self->mBarsHandle = AMDialog_GetControlItem ((AMDialog*)self, kBarsPanel);
  99.     self->mStandardHandle = AMDialog_GetControlItem ((AMDialog*)self, kStandardScroll);
  100.     self->mGraphicHandle = AMDialog_GetControlItem ((AMDialog*)self, kGraphicScroll);
  101.     self->mSliderHandle = AMDialog_GetControlItem ((AMDialog*)self, kSliderScroll);
  102.     self->mTickMarksHandle = AMDialog_GetControlItem ((AMDialog*)self, kTickMarksScroll);
  103.     self->mNonDirectionalHandle = AMDialog_GetControlItem ((AMDialog*)self, kNonDirectionalScroll);
  104.     self->mLittleArrowsHandle = AMDialog_GetControlItem ((AMDialog*)self, kLittleArrowsScroll);
  105.     self->mSpinnerHandle = AMDialog_GetControlItem ((AMDialog*)self, kSpinnerScroll);
  106.     self->mVolumeControlHandle = AMDialog_GetControlItem ((AMDialog*)self, kVolumeControlScroll);
  107.     self->mJimSSliderHandle = AMDialog_GetControlItem ((AMDialog*)self, kJimSSliderScroll);
  108.     self->mStandard2Handle = AMDialog_GetControlItem ((AMDialog*)self, kStandard2Bar);
  109.     self->mIndeterminateHandle = AMDialog_GetControlItem ((AMDialog*)self, kIndeterminateBar);
  110.     self->mChasingArrowsHandle = AMDialog_GetControlItem ((AMDialog*)self, kChasingArrowsBar);
  111.     self->mRectangleHandle = AMDialog_GetControlItem ((AMDialog*)self, kRectangleBar);
  112.     self->mRoundRectHandle = AMDialog_GetControlItem ((AMDialog*)self, kRoundRectBar);
  113.     self->mBarberPoleHandle = AMDialog_GetControlItem ((AMDialog*)self, kBarberPoleBar);
  114.     self->mRoundBarberHandle = AMDialog_GetControlItem ((AMDialog*)self, kRoundBarberBar);
  115. }
  116.  
  117. //----------
  118. void    ModalBars_ConnectToData (
  119.     ModalBars*        self,
  120.     AMSignaler*        inData)
  121. {
  122.     AMDialog_ConnectToData ((AMDialog*)self, inData);
  123.     self->mData = (DModalBarsData*) inData;
  124.  
  125.     SetControlValue (self->mBarsHandle, GetBars2 (self->mData));
  126.     SetLayerGroupValue (self->mBarsHandle, GetControlValue (self->mBarsHandle));
  127.     SetControlValue (self->mStandardHandle, GetStandard5 (self->mData));
  128.     SetControlValue (self->mGraphicHandle, GetGraphic4 (self->mData));
  129.     SetControlValue (self->mSliderHandle, GetSlider2 (self->mData));
  130.     SetControlValue (self->mTickMarksHandle, GetTickMarks2 (self->mData));
  131.     SetControlValue (self->mNonDirectionalHandle, GetNonDirectional2 (self->mData));
  132.     SetControlValue (self->mLittleArrowsHandle, GetLittleArrows2 (self->mData));
  133.     SetControlValue (self->mSpinnerHandle, GetSpinner2 (self->mData));
  134.     SetControlValue (self->mVolumeControlHandle, GetVolumeControl2 (self->mData));
  135.     SetControlValue (self->mJimSSliderHandle, GetJimSSlider2 (self->mData));
  136.     SetControlValue (self->mStandard2Handle, GetStandard6 (self->mData));
  137.     SetControlValue (self->mIndeterminateHandle, GetIndeterminate2 (self->mData));
  138.     SetControlValue (self->mChasingArrowsHandle, GetChasingArrows2 (self->mData));
  139.     SetControlValue (self->mRectangleHandle, GetRectangle2 (self->mData));
  140.     SetControlValue (self->mRoundRectHandle, GetRoundRect2 (self->mData));
  141.     SetControlValue (self->mBarberPoleHandle, GetBarberPole2 (self->mData));
  142.     SetControlValue (self->mRoundBarberHandle, GetRoundBarber2 (self->mData));
  143. }
  144.  
  145. //----------
  146. void    ModalBars_DoItem (
  147.     ModalBars*        self,
  148.     SInt16        inItemHit)
  149. {
  150.     switch (inItemHit) {
  151.     case kOKButton:
  152.             AMDialog_SetResult ((AMDialog*)self, true);
  153.         break;
  154.     case kBarsPanel:
  155.             SetBars2 (self->mData, GetControlValue (self->mBarsHandle));
  156.             SetLayerGroupValue (self->mBarsHandle, GetControlValue (self->mBarsHandle));
  157.         break;
  158.     case kStandardScroll:
  159.             SetStandard5 (self->mData, GetControlValue (self->mStandardHandle));
  160.         break;
  161.     case kGraphicScroll:
  162.             SetGraphic4 (self->mData, GetControlValue (self->mGraphicHandle));
  163.         break;
  164.     case kSliderScroll:
  165.             SetSlider2 (self->mData, GetControlValue (self->mSliderHandle));
  166.         break;
  167.     case kTickMarksScroll:
  168.             SetTickMarks2 (self->mData, GetControlValue (self->mTickMarksHandle));
  169.         break;
  170.     case kNonDirectionalScroll:
  171.             SetNonDirectional2 (self->mData, GetControlValue (self->mNonDirectionalHandle));
  172.         break;
  173.     case kLittleArrowsScroll:
  174.             SetLittleArrows2 (self->mData, GetControlValue (self->mLittleArrowsHandle));
  175.         break;
  176.     case kSpinnerScroll:
  177.             SetSpinner2 (self->mData, GetControlValue (self->mSpinnerHandle));
  178.         break;
  179.     case kVolumeControlScroll:
  180.             SetVolumeControl2 (self->mData, GetControlValue (self->mVolumeControlHandle));
  181.         break;
  182.     case kJimSSliderScroll:
  183.             SetJimSSlider2 (self->mData, GetControlValue (self->mJimSSliderHandle));
  184.         break;
  185.  
  186.     } // switch
  187. }
  188.  
  189. //----------
  190. void    ModalBars_DataChanged (
  191.     ModalBars*        self,
  192.     long        inDataID)
  193. {
  194.     if (inDataID == idBars2) {
  195.         SetControlValue (self->mBarsHandle, GetBars2 (self->mData));
  196.         SetLayerGroupValue (self->mBarsHandle, GetBars2 (self->mData));
  197.     }
  198.     if (inDataID == idStandard5) {
  199.         SetControlValue (self->mStandardHandle, GetStandard5 (self->mData));
  200.     }
  201.     if (inDataID == idGraphic4) {
  202.         SetControlValue (self->mGraphicHandle, GetGraphic4 (self->mData));
  203.     }
  204.     if (inDataID == idSlider2) {
  205.         SetControlValue (self->mSliderHandle, GetSlider2 (self->mData));
  206.     }
  207.     if (inDataID == idTickMarks2) {
  208.         SetControlValue (self->mTickMarksHandle, GetTickMarks2 (self->mData));
  209.     }
  210.     if (inDataID == idNonDirectional2) {
  211.         SetControlValue (self->mNonDirectionalHandle, GetNonDirectional2 (self->mData));
  212.     }
  213.     if (inDataID == idLittleArrows2) {
  214.         SetControlValue (self->mLittleArrowsHandle, GetLittleArrows2 (self->mData));
  215.     }
  216.     if (inDataID == idSpinner2) {
  217.         SetControlValue (self->mSpinnerHandle, GetSpinner2 (self->mData));
  218.     }
  219.     if (inDataID == idVolumeControl2) {
  220.         SetControlValue (self->mVolumeControlHandle, GetVolumeControl2 (self->mData));
  221.     }
  222.     if (inDataID == idJimSSlider2) {
  223.         SetControlValue (self->mJimSSliderHandle, GetJimSSlider2 (self->mData));
  224.     }
  225.     if (inDataID == idStandard6) {
  226.         SetControlValue (self->mStandard2Handle, GetStandard6 (self->mData));
  227.     }
  228.     if (inDataID == idIndeterminate2) {
  229.         SetControlValue (self->mIndeterminateHandle, GetIndeterminate2 (self->mData));
  230.     }
  231.     if (inDataID == idChasingArrows2) {
  232.         SetControlValue (self->mChasingArrowsHandle, GetChasingArrows2 (self->mData));
  233.     }
  234.     if (inDataID == idRectangle2) {
  235.         SetControlValue (self->mRectangleHandle, GetRectangle2 (self->mData));
  236.     }
  237.     if (inDataID == idRoundRect2) {
  238.         SetControlValue (self->mRoundRectHandle, GetRoundRect2 (self->mData));
  239.     }
  240.     if (inDataID == idBarberPole2) {
  241.         SetControlValue (self->mBarberPoleHandle, GetBarberPole2 (self->mData));
  242.     }
  243.     if (inDataID == idRoundBarber2) {
  244.         SetControlValue (self->mRoundBarberHandle, GetRoundBarber2 (self->mData));
  245.     }
  246. }
  247.  
  248. //----------
  249. Boolean        ModalBars_Filter (
  250.     ModalBars*            self,
  251.     EventRecord            *ioEvent,
  252.     DialogItemIndex        *outItemHit)
  253. {
  254.     return AMDialog_Filter ((AMDialog*)self, ioEvent, outItemHit);
  255. }
  256.